<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>keys: XML Security Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="XML Security Library Reference Manual">
<link rel="up" href="xmlsec-ref.html" title="XML Security Core Library API Reference.">
<link rel="prev" href="xmlsec-keysdata.html" title="keysdata">
<link rel="next" href="xmlsec-keysmngr.html" title="keysmngr">
<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<style type="text/css">
table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
    width: 20em;
}
.synopsis, .classsynopsis {
    background: #eeeeee;
    border: solid 1px #aaaaaa;
}
.programlisting {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation a {
    color: initial;
}
.navigation a:visited {
    color: initial;
}
</style>
<style type="text/css">
table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
    width: 20em;
}
.synopsis, .classsynopsis {
    background: #eeeeee;
    border: solid 1px #aaaaaa;
}
.programlisting {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation {
    background: #eeeeee;
    border: solid 1px #000000;
}
.navigation a {
    color: initial;
}
.navigation a:visited {
    color: initial;
}
</style>
</head>
<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
<li><a href="../index.html">Home</a></li>
<li><a href="../download.html">Download</a></li>
<li><a href="../news.html">News</a></li>
<li><a href="../documentation.html">Documentation</a></li>
<ul>
<li><a href="../faq.html">FAQ</a></li>
<li><a href="../api/xmlsec-notes.html">Tutorial</a></li>
<li><a href="../api/xmlsec-reference.html">API reference</a></li>
<li><a href="../api/xmlsec-examples.html">Examples</a></li>
</ul>
<li><a href="../xmldsig.html">XML Digital Signature</a></li>
<ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
<li><a href="../xmlenc.html">XML Encryption</a></li>
<li><a href="../c14n.html">XML Canonicalization</a></li>
<li><a href="../bugs.html">Reporting Bugs</a></li>
<li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
<li><a href="../related.html">Related</a></li>
<li><a href="../authors.html">Authors</a></li>
</ul>
<table width="100%">
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
</tr>
<tr>
<td width="15"></td>
<td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
</tr>
<!--Links - start--><!--Links - end-->
</table>
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#xmlsec-keys.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="xmlsec-keysdata.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="xmlsec-keysmngr.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="xmlsec-keys"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="xmlsec-keys.top_of_page"></a>keys</span></h2>
<p>keys &#8212; Crypto key object functions.</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="xmlsec-keys.stability-level"></a><h2>Stability Level</h2>
<a href="http://foldoc.org/Stable"><span class="acronym">Stable</span></a>, unless otherwise indicated
</div>
<div class="refsect1">
<a name="xmlsec-keys.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithInitialize" title="xmlSecKeyUseWithInitialize ()">xmlSecKeyUseWithInitialize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithFinalize" title="xmlSecKeyUseWithFinalize ()">xmlSecKeyUseWithFinalize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithReset" title="xmlSecKeyUseWithReset ()">xmlSecKeyUseWithReset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithCopy" title="xmlSecKeyUseWithCopy ()">xmlSecKeyUseWithCopy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="returnvalue">xmlSecKeyUseWithPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithCreate" title="xmlSecKeyUseWithCreate ()">xmlSecKeyUseWithCreate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="returnvalue">xmlSecKeyUseWithPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithDuplicate" title="xmlSecKeyUseWithDuplicate ()">xmlSecKeyUseWithDuplicate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithDestroy" title="xmlSecKeyUseWithDestroy ()">xmlSecKeyUseWithDestroy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithSet" title="xmlSecKeyUseWithSet ()">xmlSecKeyUseWithSet</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithDebugDump" title="xmlSecKeyUseWithDebugDump ()">xmlSecKeyUseWithDebugDump</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithDebugXmlDump" title="xmlSecKeyUseWithDebugXmlDump ()">xmlSecKeyUseWithDebugXmlDump</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">xmlSecPtrListId</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithPtrListGetKlass" title="xmlSecKeyUseWithPtrListGetKlass ()">xmlSecKeyUseWithPtrListGetKlass</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqInitialize" title="xmlSecKeyReqInitialize ()">xmlSecKeyReqInitialize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqFinalize" title="xmlSecKeyReqFinalize ()">xmlSecKeyReqFinalize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqReset" title="xmlSecKeyReqReset ()">xmlSecKeyReqReset</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqCopy" title="xmlSecKeyReqCopy ()">xmlSecKeyReqCopy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqMatchKey" title="xmlSecKeyReqMatchKey ()">xmlSecKeyReqMatchKey</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqMatchKeyValue" title="xmlSecKeyReqMatchKeyValue ()">xmlSecKeyReqMatchKeyValue</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqDebugDump" title="xmlSecKeyReqDebugDump ()">xmlSecKeyReqDebugDump</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReqDebugXmlDump" title="xmlSecKeyReqDebugXmlDump ()">xmlSecKeyReqDebugXmlDump</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyCreate" title="xmlSecKeyCreate ()">xmlSecKeyCreate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyDestroy" title="xmlSecKeyDestroy ()">xmlSecKeyDestroy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyEmpty" title="xmlSecKeyEmpty ()">xmlSecKeyEmpty</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyDuplicate" title="xmlSecKeyDuplicate ()">xmlSecKeyDuplicate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyCopy" title="xmlSecKeyCopy ()">xmlSecKeyCopy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <font><span class="returnvalue">xmlChar</span></font> *
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyGetName" title="xmlSecKeyGetName ()">xmlSecKeyGetName</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeySetName" title="xmlSecKeySetName ()">xmlSecKeySetName</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="returnvalue">xmlSecKeyDataType</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyGetType" title="xmlSecKeyGetType ()">xmlSecKeyGetType</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyGetValue" title="xmlSecKeyGetValue ()">xmlSecKeyGetValue</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeySetValue" title="xmlSecKeySetValue ()">xmlSecKeySetValue</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyGetData" title="xmlSecKeyGetData ()">xmlSecKeyGetData</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyEnsureData" title="xmlSecKeyEnsureData ()">xmlSecKeyEnsureData</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyAdoptData" title="xmlSecKeyAdoptData ()">xmlSecKeyAdoptData</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyDebugDump" title="xmlSecKeyDebugDump ()">xmlSecKeyDebugDump</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">void</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyDebugXmlDump" title="xmlSecKeyDebugXmlDump ()">xmlSecKeyDebugXmlDump</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyGenerate" title="xmlSecKeyGenerate ()">xmlSecKeyGenerate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyGenerateByName" title="xmlSecKeyGenerateByName ()">xmlSecKeyGenerateByName</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">int</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyMatch" title="xmlSecKeyMatch ()">xmlSecKeyMatch</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReadBuffer" title="xmlSecKeyReadBuffer ()">xmlSecKeyReadBuffer</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReadBinaryFile" title="xmlSecKeyReadBinaryFile ()">xmlSecKeyReadBinaryFile</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyReadMemory" title="xmlSecKeyReadMemory ()">xmlSecKeyReadMemory</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyIsValid" title="xmlSecKeyIsValid()">xmlSecKeyIsValid</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyCheckId" title="xmlSecKeyCheckId()">xmlSecKeyCheckId</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<font><span class="returnvalue">xmlSecPtrListId</span></font>
</td>
<td class="function_name">
<a class="link" href="xmlsec-keys.html#xmlSecKeyPtrListGetKlass" title="xmlSecKeyPtrListGetKlass ()">xmlSecKeyPtrListGetKlass</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="xmlsec-keys.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUsage" title="xmlSecKeyUsage">xmlSecKeyUsage</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUsageSign" title="xmlSecKeyUsageSign">xmlSecKeyUsageSign</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUsageVerify" title="xmlSecKeyUsageVerify">xmlSecKeyUsageVerify</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUsageEncrypt" title="xmlSecKeyUsageEncrypt">xmlSecKeyUsageEncrypt</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUsageDecrypt" title="xmlSecKeyUsageDecrypt">xmlSecKeyUsageDecrypt</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUsageKeyExchange" title="xmlSecKeyUsageKeyExchange">xmlSecKeyUsageKeyExchange</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUsageAny" title="xmlSecKeyUsageAny">xmlSecKeyUsageAny</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith">xmlSecKeyUseWith</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWithPtrListId" title="xmlSecKeyUseWithPtrListId">xmlSecKeyUseWithPtrListId</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq">xmlSecKeyReq</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey">xmlSecKey</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="xmlsec-keys.html#xmlSecKeyPtrListId" title="xmlSecKeyPtrListId">xmlSecKeyPtrListId</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="xmlsec-keys.description"></a><h2>Description</h2>
<p></p>
</div>
<div class="refsect1">
<a name="xmlsec-keys.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="xmlSecKeyUseWithInitialize"></a><h3>xmlSecKeyUseWithInitialize ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyUseWithInitialize (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>);</pre>
<p>Initializes <em class="parameter"><code>keyUseWith</code></em>
 object.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithInitialize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyUseWithInitialize.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithFinalize"></a><h3>xmlSecKeyUseWithFinalize ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyUseWithFinalize (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>);</pre>
<p>Finalizes <em class="parameter"><code>keyUseWith</code></em>
 object.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithFinalize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithReset"></a><h3>xmlSecKeyUseWithReset ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyUseWithReset (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>);</pre>
<p>Resets the <em class="parameter"><code>keyUseWith</code></em>
 to its state after initialization.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithReset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithCopy"></a><h3>xmlSecKeyUseWithCopy ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyUseWithCopy (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> dst</code></em>,
                      <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> src</code></em>);</pre>
<p>Copies information from <em class="parameter"><code>dst</code></em>
 to <em class="parameter"><code>src</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithCopy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dst</p></td>
<td class="parameter_description"><p>the pointer to destination object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src</p></td>
<td class="parameter_description"><p>the pointer to source object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyUseWithCopy.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithCreate"></a><h3>xmlSecKeyUseWithCreate ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="returnvalue">xmlSecKeyUseWithPtr</span></a>
xmlSecKeyUseWithCreate (<em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *application</code></em>,
                        <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *identifier</code></em>);</pre>
<p>Creates new xmlSecKeyUseWith object. The caller is responsible for destroying
returned object with <em class="parameter"><code>xmlSecKeyUseWithDestroy</code></em>
 function.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithCreate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>application</p></td>
<td class="parameter_description"><p>the application value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>identifier</p></td>
<td class="parameter_description"><p>the identifier value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyUseWithCreate.returns"></a><h4>Returns</h4>
<p> pointer to newly created object or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithDuplicate"></a><h3>xmlSecKeyUseWithDuplicate ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="returnvalue">xmlSecKeyUseWithPtr</span></a>
xmlSecKeyUseWithDuplicate (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>);</pre>
<p>Duplicates <em class="parameter"><code>keyUseWith</code></em>
 object. The caller is responsible for destroying
returned object with <em class="parameter"><code>xmlSecKeyUseWithDestroy</code></em>
 function.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithDuplicate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyUseWithDuplicate.returns"></a><h4>Returns</h4>
<p> pointer to newly created object or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithDestroy"></a><h3>xmlSecKeyUseWithDestroy ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyUseWithDestroy (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>);</pre>
<p>Destroys <em class="parameter"><code>keyUseWith</code></em>
 created with <em class="parameter"><code>xmlSecKeyUseWithCreate</code></em>
 or <em class="parameter"><code>xmlSecKeyUseWithDuplicate</code></em>

functions.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithDestroy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithSet"></a><h3>xmlSecKeyUseWithSet ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyUseWithSet (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>,
                     <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *application</code></em>,
                     <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *identifier</code></em>);</pre>
<p>Sets <em class="parameter"><code>application</code></em>
 and <em class="parameter"><code>identifier</code></em>
 in the <em class="parameter"><code>keyUseWith</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithSet.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>application</p></td>
<td class="parameter_description"><p>the new application value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>identifier</p></td>
<td class="parameter_description"><p>the new identifier value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyUseWithSet.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithDebugDump"></a><h3>xmlSecKeyUseWithDebugDump ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyUseWithDebugDump (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>,
                           <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre>
<p>Prints xmlSecKeyUseWith debug information to a file <em class="parameter"><code>output</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithDebugDump.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>output</p></td>
<td class="parameter_description"><p>the pointer to output FILE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithDebugXmlDump"></a><h3>xmlSecKeyUseWithDebugXmlDump ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyUseWithDebugXmlDump (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyUseWith" title="struct xmlSecKeyUseWith"><span class="type">xmlSecKeyUseWithPtr</span></a> keyUseWith</code></em>,
                              <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre>
<p>Prints xmlSecKeyUseWith debug information to a file <em class="parameter"><code>output</code></em>
 in XML format.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithDebugXmlDump.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyUseWith</p></td>
<td class="parameter_description"><p>the pointer to information about key application/user.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>output</p></td>
<td class="parameter_description"><p>the pointer to output FILE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithPtrListGetKlass"></a><h3>xmlSecKeyUseWithPtrListGetKlass ()</h3>
<pre class="programlisting"><font><span class="returnvalue">xmlSecPtrListId</span></font>
xmlSecKeyUseWithPtrListGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>The key data list klass.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWithPtrListGetKlass.returns"></a><h4>Returns</h4>
<p> pointer to the key data list klass.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqInitialize"></a><h3>xmlSecKeyReqInitialize ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyReqInitialize (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>);</pre>
<p>Initialize key requirements object. Caller is responsible for
cleaning it with <a class="link" href="xmlsec-keys.html#xmlSecKeyReqFinalize" title="xmlSecKeyReqFinalize ()"><span class="type">xmlSecKeyReqFinalize</span></a> function.</p>
<div class="refsect3">
<a name="xmlSecKeyReqInitialize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements object.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyReqInitialize.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqFinalize"></a><h3>xmlSecKeyReqFinalize ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyReqFinalize (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>);</pre>
<p>Cleans the key requirements object initialized with <a class="link" href="xmlsec-keys.html#xmlSecKeyReqInitialize" title="xmlSecKeyReqInitialize ()"><span class="type">xmlSecKeyReqInitialize</span></a>
function.</p>
<div class="refsect3">
<a name="xmlSecKeyReqFinalize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements object.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqReset"></a><h3>xmlSecKeyReqReset ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyReqReset (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>);</pre>
<p>Resets key requirements object for new key search.</p>
<div class="refsect3">
<a name="xmlSecKeyReqReset.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements object.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqCopy"></a><h3>xmlSecKeyReqCopy ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyReqCopy (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> dst</code></em>,
                  <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> src</code></em>);</pre>
<p>Copies key requirements from <em class="parameter"><code>src</code></em>
 object to <em class="parameter"><code>dst</code></em>
 object.</p>
<div class="refsect3">
<a name="xmlSecKeyReqCopy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dst</p></td>
<td class="parameter_description"><p>the pointer to destination object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src</p></td>
<td class="parameter_description"><p>the pointer to source object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyReqCopy.returns"></a><h4>Returns</h4>
<p> 0 on success and a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqMatchKey"></a><h3>xmlSecKeyReqMatchKey ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyReqMatchKey (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>,
                      <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Checks whether <em class="parameter"><code>key</code></em>
 matches key requirements <em class="parameter"><code>keyReq</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyReqMatchKey.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyReqMatchKey.returns"></a><h4>Returns</h4>
<p> 1 if key matches requirements, 0 if not and a negative value
if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqMatchKeyValue"></a><h3>xmlSecKeyReqMatchKeyValue ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyReqMatchKeyValue (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>,
                           <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> value</code></em>);</pre>
<p>Checks whether <em class="parameter"><code>keyValue</code></em>
 matches key requirements <em class="parameter"><code>keyReq</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyReqMatchKeyValue.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>the pointer to key value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyReqMatchKeyValue.returns"></a><h4>Returns</h4>
<p> 1 if key value matches requirements, 0 if not and a negative value
if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqDebugDump"></a><h3>xmlSecKeyReqDebugDump ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyReqDebugDump (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>,
                       <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre>
<p>Prints debug information about <em class="parameter"><code>keyReq</code></em>
 into <em class="parameter"><code>output</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyReqDebugDump.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>output</p></td>
<td class="parameter_description"><p>the pointer to output FILE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReqDebugXmlDump"></a><h3>xmlSecKeyReqDebugXmlDump ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyReqDebugXmlDump (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>,
                          <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre>
<p>Prints debug information about <em class="parameter"><code>keyReq</code></em>
 into <em class="parameter"><code>output</code></em>
 in XML format.</p>
<div class="refsect3">
<a name="xmlSecKeyReqDebugXmlDump.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>output</p></td>
<td class="parameter_description"><p>the pointer to output FILE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyCreate"></a><h3>xmlSecKeyCreate ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
xmlSecKeyCreate (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Allocates and initializes new key. Caller is responsible for
freeing returned object with <a class="link" href="xmlsec-keys.html#xmlSecKeyDestroy" title="xmlSecKeyDestroy ()"><span class="type">xmlSecKeyDestroy</span></a> function.</p>
<div class="refsect3">
<a name="xmlSecKeyCreate.returns"></a><h4>Returns</h4>
<p> the pointer to newly allocated <em class="parameter"><code>xmlSecKey</code></em>
structure
or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyDestroy"></a><h3>xmlSecKeyDestroy ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyDestroy (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Destroys the key created using <a class="link" href="xmlsec-keys.html#xmlSecKeyCreate" title="xmlSecKeyCreate ()"><span class="type">xmlSecKeyCreate</span></a> function.</p>
<div class="refsect3">
<a name="xmlSecKeyDestroy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyEmpty"></a><h3>xmlSecKeyEmpty ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyEmpty (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Clears the <em class="parameter"><code>key</code></em>
 data.</p>
<div class="refsect3">
<a name="xmlSecKeyEmpty.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyDuplicate"></a><h3>xmlSecKeyDuplicate ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
xmlSecKeyDuplicate (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Creates a duplicate of the given <em class="parameter"><code>key</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyDuplicate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to the <a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKey</span></a> structure.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyDuplicate.returns"></a><h4>Returns</h4>
<p> the pointer to newly allocated <a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKey</span></a> structure
or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyCopy"></a><h3>xmlSecKeyCopy ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyCopy (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> keyDst</code></em>,
               <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> keySrc</code></em>);</pre>
<p>Copies key data from <em class="parameter"><code>keySrc</code></em>
 to <em class="parameter"><code>keyDst</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyCopy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>keyDst</p></td>
<td class="parameter_description"><p>the destination key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>keySrc</p></td>
<td class="parameter_description"><p>the source key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyCopy.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyGetName"></a><h3>xmlSecKeyGetName ()</h3>
<pre class="programlisting">const <font><span class="returnvalue">xmlChar</span></font> *
xmlSecKeyGetName (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Gets key name (see also <a class="link" href="xmlsec-keys.html#xmlSecKeySetName" title="xmlSecKeySetName ()"><span class="type">xmlSecKeySetName</span></a> function).</p>
<div class="refsect3">
<a name="xmlSecKeyGetName.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyGetName.returns"></a><h4>Returns</h4>
<p> key name.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeySetName"></a><h3>xmlSecKeySetName ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeySetName (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                  <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *name</code></em>);</pre>
<p>Sets key name (see also <a class="link" href="xmlsec-keys.html#xmlSecKeyGetName" title="xmlSecKeyGetName ()"><span class="type">xmlSecKeyGetName</span></a> function).</p>
<div class="refsect3">
<a name="xmlSecKeySetName.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the new key name.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeySetName.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyGetType"></a><h3>xmlSecKeyGetType ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="returnvalue">xmlSecKeyDataType</span></a>
xmlSecKeyGetType (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Gets <em class="parameter"><code>key</code></em>
 type.</p>
<div class="refsect3">
<a name="xmlSecKeyGetType.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyGetType.returns"></a><h4>Returns</h4>
<p> key type.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyGetValue"></a><h3>xmlSecKeyGetValue ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a>
xmlSecKeyGetValue (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>);</pre>
<p>Gets key value (see also <a class="link" href="xmlsec-keys.html#xmlSecKeySetValue" title="xmlSecKeySetValue ()"><span class="type">xmlSecKeySetValue</span></a> function).</p>
<div class="refsect3">
<a name="xmlSecKeyGetValue.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyGetValue.returns"></a><h4>Returns</h4>
<p> key value (crypto material).</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeySetValue"></a><h3>xmlSecKeySetValue ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeySetValue (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                   <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> value</code></em>);</pre>
<p>Sets key value (see also <a class="link" href="xmlsec-keys.html#xmlSecKeyGetValue" title="xmlSecKeyGetValue ()"><span class="type">xmlSecKeyGetValue</span></a> function).</p>
<div class="refsect3">
<a name="xmlSecKeySetValue.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>the new value.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeySetValue.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyGetData"></a><h3>xmlSecKeyGetData ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a>
xmlSecKeyGetData (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                  <em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> dataId</code></em>);</pre>
<p>Gets key's data.</p>
<div class="refsect3">
<a name="xmlSecKeyGetData.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dataId</p></td>
<td class="parameter_description"><p>the requested data klass.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyGetData.returns"></a><h4>Returns</h4>
<p> additional data associated with the <em class="parameter"><code>key</code></em>
(see also
<a class="link" href="xmlsec-keys.html#xmlSecKeyAdoptData" title="xmlSecKeyAdoptData ()"><span class="type">xmlSecKeyAdoptData</span></a> function).</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyEnsureData"></a><h3>xmlSecKeyEnsureData ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="returnvalue">xmlSecKeyDataPtr</span></a>
xmlSecKeyEnsureData (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                     <em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> dataId</code></em>);</pre>
<p>If necessary, creates key data of <em class="parameter"><code>dataId</code></em>
 klass and adds to <em class="parameter"><code>key</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyEnsureData.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dataId</p></td>
<td class="parameter_description"><p>the requested data klass.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyEnsureData.returns"></a><h4>Returns</h4>
<p> pointer to key data or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyAdoptData"></a><h3>xmlSecKeyAdoptData ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyAdoptData (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                    <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> data</code></em>);</pre>
<p>Adds <em class="parameter"><code>data</code></em>
 to the <em class="parameter"><code>key</code></em>
. The <em class="parameter"><code>data</code></em>
 object will be destroyed
by <em class="parameter"><code>key</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyAdoptData.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the pointer to key data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyAdoptData.returns"></a><h4>Returns</h4>
<p> 0 on success or a negative value otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyDebugDump"></a><h3>xmlSecKeyDebugDump ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyDebugDump (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                    <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre>
<p>Prints the information about the <em class="parameter"><code>key</code></em>
 to the <em class="parameter"><code>output</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyDebugDump.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>output</p></td>
<td class="parameter_description"><p>the pointer to output FILE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyDebugXmlDump"></a><h3>xmlSecKeyDebugXmlDump ()</h3>
<pre class="programlisting"><font><span class="returnvalue">void</span></font>
xmlSecKeyDebugXmlDump (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                       <em class="parameter"><code><font><span class="type">FILE</span></font> *output</code></em>);</pre>
<p>Prints the information about the <em class="parameter"><code>key</code></em>
 to the <em class="parameter"><code>output</code></em>
 in XML format.</p>
<div class="refsect3">
<a name="xmlSecKeyDebugXmlDump.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>output</p></td>
<td class="parameter_description"><p>the pointer to output FILE.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyGenerate"></a><h3>xmlSecKeyGenerate ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
xmlSecKeyGenerate (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> dataId</code></em>,
                   <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> sizeBits</code></em>,
                   <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="type">xmlSecKeyDataType</span></a> type</code></em>);</pre>
<p>Generates new key of requested klass <em class="parameter"><code>dataId</code></em>
 and <em class="parameter"><code>type</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyGenerate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dataId</p></td>
<td class="parameter_description"><p>the requested key klass (rsa, dsa, aes, ...).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sizeBits</p></td>
<td class="parameter_description"><p>the new key size (in bits!).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>the new key type (session, permanent, ...).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyGenerate.returns"></a><h4>Returns</h4>
<p> pointer to newly created key or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyGenerateByName"></a><h3>xmlSecKeyGenerateByName ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
xmlSecKeyGenerateByName (<em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *name</code></em>,
                         <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> sizeBits</code></em>,
                         <em class="parameter"><code><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="type">xmlSecKeyDataType</span></a> type</code></em>);</pre>
<p>Generates new key of requested <em class="parameter"><code>klass</code></em>
 and <em class="parameter"><code>type</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyGenerateByName.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the requested key klass name (rsa, dsa, aes, ...).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sizeBits</p></td>
<td class="parameter_description"><p>the new key size (in bits!).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>the new key type (session, permanent, ...).</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyGenerateByName.returns"></a><h4>Returns</h4>
<p> pointer to newly created key or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyMatch"></a><h3>xmlSecKeyMatch ()</h3>
<pre class="programlisting"><font><span class="returnvalue">int</span></font>
xmlSecKeyMatch (<em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="type">xmlSecKeyPtr</span></a> key</code></em>,
                <em class="parameter"><code>const <font><span class="type">xmlChar</span></font> *name</code></em>,
                <em class="parameter"><code><a class="link" href="xmlsec-keys.html#xmlSecKeyReq" title="struct xmlSecKeyReq"><span class="type">xmlSecKeyReqPtr</span></a> keyReq</code></em>);</pre>
<p>Checks whether the <em class="parameter"><code>key</code></em>
 matches the given criteria.</p>
<div class="refsect3">
<a name="xmlSecKeyMatch.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the pointer to key name (may be NULL).</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>keyReq</p></td>
<td class="parameter_description"><p>the pointer to key requirements.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyMatch.returns"></a><h4>Returns</h4>
<p> 1 if the key satisfies the given criteria or 0 otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReadBuffer"></a><h3>xmlSecKeyReadBuffer ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
xmlSecKeyReadBuffer (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> dataId</code></em>,
                     <em class="parameter"><code><a class="link" href="xmlsec-buffer.html#xmlSecBuffer" title="struct xmlSecBuffer"><span class="type">xmlSecBuffer</span></a> *buffer</code></em>);</pre>
<p>Reads the key value of klass <em class="parameter"><code>dataId</code></em>
 from a buffer.</p>
<div class="refsect3">
<a name="xmlSecKeyReadBuffer.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dataId</p></td>
<td class="parameter_description"><p>the key value data klass.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
<td class="parameter_description"><p>the buffer that contains the binary data.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyReadBuffer.returns"></a><h4>Returns</h4>
<p> pointer to newly created key or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReadBinaryFile"></a><h3>xmlSecKeyReadBinaryFile ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
xmlSecKeyReadBinaryFile (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> dataId</code></em>,
                         <em class="parameter"><code>const <font><span class="type">char</span></font> *filename</code></em>);</pre>
<p>Reads the key value of klass <em class="parameter"><code>dataId</code></em>
 from a binary file <em class="parameter"><code>filename</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyReadBinaryFile.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dataId</p></td>
<td class="parameter_description"><p>the key value data klass.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>filename</p></td>
<td class="parameter_description"><p>the key binary filename.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyReadBinaryFile.returns"></a><h4>Returns</h4>
<p> pointer to newly created key or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReadMemory"></a><h3>xmlSecKeyReadMemory ()</h3>
<pre class="programlisting"><a class="link" href="xmlsec-keys.html#xmlSecKey" title="struct xmlSecKey"><span class="returnvalue">xmlSecKeyPtr</span></a>
xmlSecKeyReadMemory (<em class="parameter"><code><font><span class="type">xmlSecKeyDataId</span></font> dataId</code></em>,
                     <em class="parameter"><code>const <a class="link" href="xmlsec-xmlsec.html#xmlSecByte" title="xmlSecByte"><span class="type">xmlSecByte</span></a> *data</code></em>,
                     <em class="parameter"><code><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> dataSize</code></em>);</pre>
<p>Reads the key value of klass <em class="parameter"><code>dataId</code></em>
 from a memory block <em class="parameter"><code>data</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyReadMemory.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>dataId</p></td>
<td class="parameter_description"><p>the key value data klass.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the memory containing the key</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dataSize</p></td>
<td class="parameter_description"><p>the size of the memory block</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="xmlSecKeyReadMemory.returns"></a><h4>Returns</h4>
<p> pointer to newly created key or NULL if an error occurs.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyIsValid"></a><h3>xmlSecKeyIsValid()</h3>
<pre class="programlisting">#define             xmlSecKeyIsValid(key)</pre>
<p>Macro. Returns 1 if <em class="parameter"><code>key</code></em>
 is not NULL and <em class="parameter"><code>key-&gt;id</code></em>
 is not NULL
or 0 otherwise.</p>
<div class="refsect3">
<a name="xmlSecKeyIsValid.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyCheckId"></a><h3>xmlSecKeyCheckId()</h3>
<pre class="programlisting">#define             xmlSecKeyCheckId(key, keyId)</pre>
<p>Macro. Returns 1 if <em class="parameter"><code>key</code></em>
 is valid and <em class="parameter"><code>key</code></em>
's id is equal to <em class="parameter"><code>keyId</code></em>
.</p>
<div class="refsect3">
<a name="xmlSecKeyCheckId.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the pointer to key.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>keyId</p></td>
<td class="parameter_description"><p>the key Id.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyPtrListGetKlass"></a><h3>xmlSecKeyPtrListGetKlass ()</h3>
<pre class="programlisting"><font><span class="returnvalue">xmlSecPtrListId</span></font>
xmlSecKeyPtrListGetKlass (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>The keys list klass.</p>
<div class="refsect3">
<a name="xmlSecKeyPtrListGetKlass.returns"></a><h4>Returns</h4>
<p> keys list id.</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="xmlsec-keys.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="xmlSecKeyUsage"></a><h3>xmlSecKeyUsage</h3>
<pre class="programlisting">typedef unsigned int                    xmlSecKeyUsage;
</pre>
<p>The key usage.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUsageSign"></a><h3>xmlSecKeyUsageSign</h3>
<pre class="programlisting">#define xmlSecKeyUsageSign              0x00000001
</pre>
<p>Key can be used in any way.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUsageVerify"></a><h3>xmlSecKeyUsageVerify</h3>
<pre class="programlisting">#define xmlSecKeyUsageVerify            0x00000002
</pre>
<p>Key for signing.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUsageEncrypt"></a><h3>xmlSecKeyUsageEncrypt</h3>
<pre class="programlisting">#define xmlSecKeyUsageEncrypt           0x00000004
</pre>
<p>Key for signature verification.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUsageDecrypt"></a><h3>xmlSecKeyUsageDecrypt</h3>
<pre class="programlisting">#define xmlSecKeyUsageDecrypt           0x00000008
</pre>
<p>An encryption key.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUsageKeyExchange"></a><h3>xmlSecKeyUsageKeyExchange</h3>
<pre class="programlisting">#define xmlSecKeyUsageKeyExchange       0x00000010
</pre>
<p>The key is used for key exchange.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUsageAny"></a><h3>xmlSecKeyUsageAny</h3>
<pre class="programlisting">#define xmlSecKeyUsageAny               0xFFFFFFFF
</pre>
<p>A decryption key.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWith"></a><h3>struct xmlSecKeyUseWith</h3>
<pre class="programlisting">struct xmlSecKeyUseWith {
    xmlChar*                    application;
    xmlChar*                    identifier;

    void*                       reserved1;
    void*                       reserved2;
};
</pre>
<p>Information about application and user of the key.</p>
<div class="refsect3">
<a name="xmlSecKeyUseWith.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKeyUseWith.application"></a>application</code></em>;</p></td>
<td class="struct_member_description"><p>the application.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKeyUseWith.identifier"></a>identifier</code></em>;</p></td>
<td class="struct_member_description"><p>the identifier.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyUseWith.reserved1"></a>reserved1</code></em>;</p></td>
<td class="struct_member_description"><p>reserved for future use.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyUseWith.reserved2"></a>reserved2</code></em>;</p></td>
<td class="struct_member_description"><p>reserved for future use.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyUseWithPtrListId"></a><h3>xmlSecKeyUseWithPtrListId</h3>
<pre class="programlisting">#define xmlSecKeyUseWithPtrListId       xmlSecKeyUseWithPtrListGetKlass()
</pre>
<p>The keys list klass.</p>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyReq"></a><h3>struct xmlSecKeyReq</h3>
<pre class="programlisting">struct xmlSecKeyReq {
    xmlSecKeyDataId             keyId;
    xmlSecKeyDataType           keyType;
    xmlSecKeyUsage              keyUsage;
    xmlSecSize                  keyBitsSize;
    xmlSecPtrList               keyUseWithList;

    void*                       reserved1;
    void*                       reserved2;
};
</pre>
<p>The key requirements information.</p>
<div class="refsect3">
<a name="xmlSecKeyReq.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><font><span class="type">xmlSecKeyDataId</span></font> <em class="structfield"><code><a name="xmlSecKeyReq.keyId"></a>keyId</code></em>;</p></td>
<td class="struct_member_description"><p>the desired key value klass.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyDataType" title="xmlSecKeyDataType"><span class="type">xmlSecKeyDataType</span></a> <em class="structfield"><code><a name="xmlSecKeyReq.keyType"></a>keyType</code></em>;</p></td>
<td class="struct_member_description"><p>the desired key type.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="xmlsec-keys.html#xmlSecKeyUsage" title="xmlSecKeyUsage"><span class="type">xmlSecKeyUsage</span></a> <em class="structfield"><code><a name="xmlSecKeyReq.keyUsage"></a>keyUsage</code></em>;</p></td>
<td class="struct_member_description"><p>the desired key usage.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="xmlsec-xmlsec.html#xmlSecSize" title="xmlSecSize"><span class="type">xmlSecSize</span></a> <em class="structfield"><code><a name="xmlSecKeyReq.keyBitsSize"></a>keyBitsSize</code></em>;</p></td>
<td class="struct_member_description"><p>the desired key size (in bits!).</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrList</span></a> <em class="structfield"><code><a name="xmlSecKeyReq.keyUseWithList"></a>keyUseWithList</code></em>;</p></td>
<td class="struct_member_description"><p>the desired key use with application/identifier information.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyReq.reserved1"></a>reserved1</code></em>;</p></td>
<td class="struct_member_description"><p>reserved for future use.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><font><span class="type">void</span></font> *<em class="structfield"><code><a name="xmlSecKeyReq.reserved2"></a>reserved2</code></em>;</p></td>
<td class="struct_member_description"><p>reserved for future use.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKey"></a><h3>struct xmlSecKey</h3>
<pre class="programlisting">struct xmlSecKey {
    xmlChar*                            name;
    xmlSecKeyDataPtr                    value;
    xmlSecPtrListPtr                    dataList;
    xmlSecKeyUsage                      usage;
    time_t                              notValidBefore;
    time_t                              notValidAfter;
};
</pre>
<p>The key.</p>
<div class="refsect3">
<a name="xmlSecKey.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><font><span class="type">xmlChar</span></font> *<em class="structfield"><code><a name="xmlSecKey.name"></a>name</code></em>;</p></td>
<td class="struct_member_description"><p>the key name.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="xmlsec-keysdata.html#xmlSecKeyData" title="struct xmlSecKeyData"><span class="type">xmlSecKeyDataPtr</span></a> <em class="structfield"><code><a name="xmlSecKey.value"></a>value</code></em>;</p></td>
<td class="struct_member_description"><p>the key value.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="xmlsec-list.html#xmlSecPtrList" title="struct xmlSecPtrList"><span class="type">xmlSecPtrListPtr</span></a> <em class="structfield"><code><a name="xmlSecKey.dataList"></a>dataList</code></em>;</p></td>
<td class="struct_member_description"><p>the key data list.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><a class="link" href="xmlsec-keys.html#xmlSecKeyUsage" title="xmlSecKeyUsage"><span class="type">xmlSecKeyUsage</span></a> <em class="structfield"><code><a name="xmlSecKey.usage"></a>usage</code></em>;</p></td>
<td class="struct_member_description"><p>the key usage.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><font><span class="type">time_t</span></font> <em class="structfield"><code><a name="xmlSecKey.notValidBefore"></a>notValidBefore</code></em>;</p></td>
<td class="struct_member_description"><p>the start key validity interval.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><font><span class="type">time_t</span></font> <em class="structfield"><code><a name="xmlSecKey.notValidAfter"></a>notValidAfter</code></em>;</p></td>
<td class="struct_member_description"><p>the end key validity interval.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="xmlSecKeyPtrListId"></a><h3>xmlSecKeyPtrListId</h3>
<pre class="programlisting">#define xmlSecKeyPtrListId      xmlSecKeyPtrListGetKlass()
</pre>
<p>The keys list klass.</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27</div>
</td></tr></table></td>
</tr></table></body>
</html>
